package com.atguigu.tingshu.album.mapper;

import com.atguigu.tingshu.model.album.TrackInfo;
import com.atguigu.tingshu.query.album.TrackInfoQuery;
import com.atguigu.tingshu.vo.album.AlbumTrackListVo;
import com.atguigu.tingshu.vo.album.TrackListVo;
import com.atguigu.tingshu.vo.album.TrackStatVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface TrackInfoMapper extends BaseMapper<TrackInfo> {

    /**
     * @description: 获取当前用户声音分页列表
     * @author Petrichor
     * @date 2023/12/22 19:48
     * @param trackInfoQuery   声音信息  赋值有 当前用户id
     * @return 当前用户声音分页列表
     **/
    IPage<TrackListVo> selectUserTrackPage(Page<TrackListVo> trackListVoPage, @Param("vo") TrackInfoQuery trackInfoQuery);
    /**
     * 分页查询专辑所对应的声音数据
     * @author Petrichor
     * @date 2024/1/1 14:42
     * @param albumId 专辑id
     * @param page    MubatisPlus的Page对象
     * @return  AlbumTrackListVo 用户专辑声音列表信息
    **/
    IPage<AlbumTrackListVo> findAlbumTrackPage(Page<AlbumTrackListVo> page, Long albumId);
    /**
     * 统计声音信息接口
     * @author Petrichor
     * @date 2024/1/1 16:42
     * @param trackId 声音id
     * @return TrackStatVo 用户声音统计信息
     **/
    TrackStatVo selectTrackStat(Long trackId);
}
